package day05_Function;
/*
递归方法
例如：求n的阶乘 n！
方法一：使用while循环求n的阶乘
三要素：
方法名：func1
参数：int n
返回值：int result

方法二：使用递归函数（方法）求n的阶乘

递归函数：函数自己调用自己
需要满足两个条件：
1、自己调用自己
2、停止条件
 */
public class Demo12_FuncRecursion {
    public static int func1(int a){
        int i=1;
        while (a>=1){
            i=i*a;
            a--;
        }
        return i;
    }//使用while循环求n的阶乘
    public static int func2(int a){
        // 停止条件
        if (a==1){
            return 1;
        }
        // 要求n的阶乘 那么就可以使用
        // n * (n-1)!
        // n * func2(n-1)
        // 自己调用自己
        {
            a=a*func2(a-1);
            return a;
        }
    }
    public static void main(String[] args) {
       int a=10;
        System.out.println(func1(6));
        System.out.println(func2(6));
    }
}
